public class Demo2 {

    public static void main(String[] args) {
//        System.out.println(1024); // 整型默认情况下是int
//        System.out.println(3.14); // 浮点型默认情况下是double
//
//        int a = 100;
//        long b = 10L;
//        b = a; // a和b都是整形，a的范围小，b的范围大，当将a赋值给b时，编译器会自动将a提升为long类型，然后赋值
//        a = b; // 编译报错，long的范围比int范围大，会有数据丢失，不安全
//        float f = 3.14F;
//        double d = 5.12;
//        d = f; // 编译器会将f转换为double，然后进行赋值
//        f = d; // double表示数据范围大，直接将float交给double会有数据丢失，不安全
//        byte b1 = 100; // 编译通过，100没有超过byte的范围，编译器隐式将100转换为byte
//        byte b2 = 257; // 编译失败，257超过了byte的数据范围，有数据丢失


        System.out.println(1000); // 整形默认情况下是int
        System.out.println(3.14);// 浮点型默认情况下是double

        int a = 100;
        long b = 10L;
        b = a; //  a 的范围大，b的范围小，当a将值赋给 b 时，编译器会自动将a提升为long类型，然后赋值
        //a = b; // 编译报错，long的范围比int范围大，会有数据丢失，不安全
        float f = 3.14F;
        double d = 5.12;
        d = f; // 编译器会将f转换为double，然后进行赋值
        //f = d; // double表示数据范围大，直接将float交给double会有数据丢失，不安全
        byte b1 = 100; // 编译通过，100没有超过byte的范围，编译器隐式将100转换为byte
        //byte b2 = 257; // 编译失败，257超过了byte的数据范围，有数据丢失

    }
}
